﻿<%@ Application Language="C#" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
         log4net.Config.XmlConfigurator.Configure();
    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started

    }

    void Session_End(object sender, EventArgs e) 
    {
        // Code that runs when a session ends. 
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer 
        // or SQLServer, the event is not raised.
    }

    /// <summary>
    /// Very basic url rewriting
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        HttpContext incoming = HttpContext.Current;
        String path = incoming.Request.Path.ToLower();

        
        Regex regex = new Regex(@"account/selfservice", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
        MatchCollection matches = regex.Matches(path);

        if ((Convert.ToBoolean(matches.Count)))
        {
            incoming.RewritePath("~/Account/Selfservice.aspx");
        }

        regex = new Regex(@"admin", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
        matches = regex.Matches(path);

        if ((Convert.ToBoolean(matches.Count)))
        {
            incoming.RewritePath("~/Administration/Administration.aspx");
        }

        regex = new Regex(@"about", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
        matches = regex.Matches(path);

        if ((Convert.ToBoolean(matches.Count)))
        {
            incoming.RewritePath("~/About.aspx");
        }

    }
       
</script>
